import {listdata} from '@/api/index'

export default { 
  // 命令空间，当调用model时候，是通过命令空间调用，所以要保证唯一不重名
  namespace: 'list',
  // 状态，和react中state类似，和redux中state一样
  state: {
    List: []
  },
  // 调用服务端接口,获取数据
  effects: {
    *getList({payload, callback},{put, call})  {
      // 获取tags数据,yield实现同步
      // 使用call拿到请求的结果
      const res = yield call(listdata)

      // 更新状态（调用reducer）
      // 使用put，发给reducer
      yield put({
        type: 'SET_LIST', // 类似于redux的type
        payload: res // 传给reducer的数据
      })
    }
  },
  // 更新state
  reducers: {
    // state是原数据，action是dispatch传的
    SET_LIST (state, action) {
      return {...state, List: action.payload}
    }
  }
}